from langchain import PromptTemplate


class Debater:
    def __init__(self, llm, prompt="", position=0, history=None):
        # 提示词属性
        self.prompt = prompt
        # 辩论位置属性
        self.position = position
        # 历史辩论信息属性
        self.history = history
        # 工具列表，可根据需要添加更多工具
        self.tools = []
        self.llm = llm

    def add_tool(self, tool):
        self.tools.append(tool)

    def generate_debate_view(self, debate_requirement):
        # 构建提示模板
        template = """当前的辩论需求是：{debate_requirement}，历史辩论信息是：{history}，请根据你的位置{position}生成辩论观点。"""
        prompt = PromptTemplate(
            template=template,
            input_variables=["debate_requirement", "history", "position"]
        )
        # 创建 LLMChain
        chain = prompt | self.llm
        # 调用 LLMChain 生成辩论观点
        view = chain.run(debate_requirement=debate_requirement, history=self.history, position=self.position)
        return view
